home *** CD-ROM | disk | FTP | other *** search
-
-
-
- DDDDGGGGEEEEEEEESSSSXXXX((((3333SSSS)))) DDDDGGGGEEEEEEEESSSSXXXX((((3333SSSS))))
-
-
-
- NNNNAAAAMMMMEEEE
- DGEESX - compute for an N-by-N real nonsymmetric matrix A, the
- eigenvalues, the real Schur form T, and, optionally, the matrix of Schur
- vectors Z
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- SUBROUTINE DGEESX( JOBVS, SORT, SELECT, SENSE, N, A, LDA, SDIM, WR, WI,
- VS, LDVS, RCONDE, RCONDV, WORK, LWORK, IWORK, LIWORK,
- BWORK, INFO )
-
- CHARACTER JOBVS, SENSE, SORT
-
- INTEGER INFO, LDA, LDVS, LIWORK, LWORK, N, SDIM
-
- DOUBLE PRECISION RCONDE, RCONDV
-
- LOGICAL BWORK( * )
-
- INTEGER IWORK( * )
-
- DOUBLE PRECISION A( LDA, * ), VS( LDVS, * ), WI( * ), WORK( *
- ), WR( * )
-
- LOGICAL SELECT
-
- EXTERNAL SELECT
-
- IIIIMMMMPPPPLLLLEEEEMMMMEEEENNNNTTTTAAAATTTTIIIIOOOONNNN
- These routines are part of the SCSL Scientific Library and can be loaded
- using either the -lscs or the -lscs_mp option. The -lscs_mp option
- directs the linker to use the multi-processor version of the library.
-
- When linking to SCSL with -lscs or -lscs_mp, the default integer size is
- 4 bytes (32 bits). Another version of SCSL is available in which integers
- are 8 bytes (64 bits). This version allows the user access to larger
- memory sizes and helps when porting legacy Cray codes. It can be loaded
- by using the -lscs_i8 option or the -lscs_i8_mp option. A program may use
- only one of the two versions; 4-byte integer and 8-byte integer library
- calls cannot be mixed.
-
- PPPPUUUURRRRPPPPOOOOSSSSEEEE
- DGEESX computes for an N-by-N real nonsymmetric matrix A, the
- eigenvalues, the real Schur form T, and, optionally, the matrix of Schur
- vectors Z. This gives the Schur factorization A = Z*T*(Z**T). Optionally,
- it also orders the eigenvalues on the diagonal of the real Schur form so
- that selected eigenvalues are at the top left; computes a reciprocal
- condition number for the average of the selected eigenvalues (RCONDE);
- and computes a reciprocal condition number for the right invariant
- subspace corresponding to the selected eigenvalues (RCONDV). The leading
- columns of Z form an orthonormal basis for this invariant subspace.
-
- For further explanation of the reciprocal condition numbers RCONDE and
-
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- DDDDGGGGEEEEEEEESSSSXXXX((((3333SSSS)))) DDDDGGGGEEEEEEEESSSSXXXX((((3333SSSS))))
-
-
-
- RCONDV, see Section 4.10 of the LAPACK Users' Guide (where these
- quantities are called s and sep respectively).
-
- A real matrix is in real Schur form if it is upper quasi-triangular with
- 1-by-1 and 2-by-2 blocks. 2-by-2 blocks will be standardized in the form
- [ a b ]
- [ c a ]
-
- where b*c < 0. The eigenvalues of such a block are a +- sqrt(bc).
-
-
- AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
- JOBVS (input) CHARACTER*1
- = 'N': Schur vectors are not computed;
- = 'V': Schur vectors are computed.
-
- SORT (input) CHARACTER*1
- Specifies whether or not to order the eigenvalues on the diagonal
- of the Schur form. = 'N': Eigenvalues are not ordered;
- = 'S': Eigenvalues are ordered (see SELECT).
-
- SELECT (input) LOGICAL FUNCTION of two DOUBLE PRECISION arguments
- SELECT must be declared EXTERNAL in the calling subroutine. If
- SORT = 'S', SELECT is used to select eigenvalues to sort to the
- top left of the Schur form. If SORT = 'N', SELECT is not
- referenced. An eigenvalue WR(j)+sqrt(-1)*WI(j) is selected if
- SELECT(WR(j),WI(j)) is true; i.e., if either one of a complex
- conjugate pair of eigenvalues is selected, then both are. Note
- that a selected complex eigenvalue may no longer satisfy
- SELECT(WR(j),WI(j)) = .TRUE. after ordering, since ordering may
- change the value of complex eigenvalues (especially if the
- eigenvalue is ill-conditioned); in this case INFO may be set to
- N+3 (see INFO below).
-
- SENSE (input) CHARACTER*1
- Determines which reciprocal condition numbers are computed. =
- 'N': None are computed;
- = 'E': Computed for average of selected eigenvalues only;
- = 'V': Computed for selected right invariant subspace only;
- = 'B': Computed for both. If SENSE = 'E', 'V' or 'B', SORT must
- equal 'S'.
-
- N (input) INTEGER
- The order of the matrix A. N >= 0.
-
- A (input/output) DOUBLE PRECISION array, dimension (LDA, N)
- On entry, the N-by-N matrix A. On exit, A is overwritten by its
- real Schur form T.
-
- LDA (input) INTEGER
- The leading dimension of the array A. LDA >= max(1,N).
-
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-
-
-
- DDDDGGGGEEEEEEEESSSSXXXX((((3333SSSS)))) DDDDGGGGEEEEEEEESSSSXXXX((((3333SSSS))))
-
-
-
- SDIM (output) INTEGER
- If SORT = 'N', SDIM = 0. If SORT = 'S', SDIM = number of
- eigenvalues (after sorting) for which SELECT is true. (Complex
- conjugate pairs for which SELECT is true for either eigenvalue
- count as 2.)
-
- WR (output) DOUBLE PRECISION array, dimension (N)
- WI (output) DOUBLE PRECISION array, dimension (N) WR and WI
- contain the real and imaginary parts, respectively, of the
- computed eigenvalues, in the same order that they appear on the
- diagonal of the output Schur form T. Complex conjugate pairs of
- eigenvalues appear consecutively with the eigenvalue having the
- positive imaginary part first.
-
- VS (output) DOUBLE PRECISION array, dimension (LDVS,N)
- If JOBVS = 'V', VS contains the orthogonal matrix Z of Schur
- vectors. If JOBVS = 'N', VS is not referenced.
-
- LDVS (input) INTEGER
- The leading dimension of the array VS. LDVS >= 1, and if JOBVS =
- 'V', LDVS >= N.
-
- RCONDE (output) DOUBLE PRECISION
- If SENSE = 'E' or 'B', RCONDE contains the reciprocal condition
- number for the average of the selected eigenvalues. Not
- referenced if SENSE = 'N' or 'V'.
-
- RCONDV (output) DOUBLE PRECISION
- If SENSE = 'V' or 'B', RCONDV contains the reciprocal condition
- number for the selected right invariant subspace. Not referenced
- if SENSE = 'N' or 'E'.
-
- WORK (workspace/output) DOUBLE PRECISION array, dimension (LWORK)
- On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
-
- LWORK (input) INTEGER
- The dimension of the array WORK. LWORK >= max(1,3*N). Also, if
- SENSE = 'E' or 'V' or 'B', LWORK >= N+2*SDIM*(N-SDIM), where SDIM
- is the number of selected eigenvalues computed by this routine.
- Note that N+2*SDIM*(N-SDIM) <= N+N*N/2. For good performance,
- LWORK must generally be larger.
-
- IWORK (workspace/output) INTEGER array, dimension (LIWORK)
- Not referenced if SENSE = 'N' or 'E'. On exit, if INFO = 0,
- IWORK(1) returns the optimal LIWORK.
-
- LIWORK (input) INTEGER
- The dimension of the array IWORK. LIWORK >= 1; if SENSE = 'V' or
- 'B', LIWORK >= SDIM*(N-SDIM).
-
-
-
-
-
-
- PPPPaaaaggggeeee 3333
-
-
-
-
-
-
- DDDDGGGGEEEEEEEESSSSXXXX((((3333SSSS)))) DDDDGGGGEEEEEEEESSSSXXXX((((3333SSSS))))
-
-
-
- BWORK (workspace) LOGICAL array, dimension (N)
- Not referenced if SORT = 'N'.
-
- INFO (output) INTEGER
- = 0: successful exit
- < 0: if INFO = -i, the i-th argument had an illegal value.
- > 0: if INFO = i, and i is
- <= N: the QR algorithm failed to compute all the
- eigenvalues; elements 1:ILO-1 and i+1:N of WR and WI contain
- those eigenvalues which have converged; if JOBVS = 'V', VS
- contains the transformation which reduces A to its partially
- converged Schur form. = N+1: the eigenvalues could not be
- reordered because some eigenvalues were too close to separate
- (the problem is very ill-conditioned); = N+2: after reordering,
- roundoff changed values of some complex eigenvalues so that
- leading eigenvalues in the Schur form no longer satisfy
- SELECT=.TRUE. This could also be caused by underflow due to
- scaling.
-
- SSSSEEEEEEEE AAAALLLLSSSSOOOO
- INTRO_LAPACK(3S), INTRO_SCSL(3S)
-
- This man page is available only online.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 4444
-
-
-
-